Delphi vs. C++Builder

Otázka od: Vlastimil Burian

12. 10. 2004 15:57

1. nejak nemuzu dojit na to jaxe v C++Builderu (6 Enterprise) daji zjistit
hranice ordinalnich typu jako je tomu v Delphi --> High & Low ..... ????

2. by me zajimalo jestli v C++ existuje zkraceny zapis jako je tom v Pascalu --
> With .... ????

3. hlavne poterrbuju vedet jestli existuje v C++ prikaz ekv. k Exit v Delphi
... ktery tedy ukonci provadeni procedury vyjma finally bloku ..... Goto se mi
moc nelibi ledaze by to bylo jedina moznost

diky

Odpovedá: p.sestak@corag.sk

12. 10. 2004 15:50

> 1. nejak nemuzu dojit na to jaxe v C++Builderu (6 Enterprise) daji
> zjistit hranice ordinalnich typu jako je tomu v Delphi --> High &
> Low ..... ????
pozri values.h
napr. MAXINT

>
> 2. by me zajimalo jestli v C++ existuje zkraceny zapis jako je tom v
> Pascalu --> With .... ????
nie neexistuje

>
> 3. hlavne poterrbuju vedet jestli existuje v C++ prikaz ekv. k Exit
> v Delphi ... ktery tedy ukonci provadeni procedury vyjma finally
> bloku ..... Goto se mi moc nelibi ledaze by to bylo jedina moznost
return;


Odpovedá: Vlastimil Burian

13. 10. 2004 9:35

> values.h
na tuhle jednotku sem prave dosel ale MAXINT neni to co potrebuju --- v
mnoha situacich je treba zjistit "na miste" horni ci dolni hranici typu a v
tom mi tech malo konstant nepomuze prave


Odpovedá: p.sestak@corag.sk

13. 10. 2004 9:46

> > values.h
> na tuhle jednotku sem prave dosel ale MAXINT neni to co potrebuju --- v
> mnoha situacich je treba zjistit "na miste" horni ci dolni hranici typu
a v
> tom mi tech malo konstant nepomuze prave

"na miste" pouzi MAXSHORT, MAXINT, MAXDOUBLE, MAXFLOAT, analogicky MIN.
Nechapem, preco sa to neda pouzit?
Existuje este jedna pomocka: \stl\_limits.h,
vyzaduje vsak aspon zakladne vedomosti o sablonach.
P.

Odpovedá: Vlastimil Burian

13. 10. 2004 12:17

> > values.h
-----------
> > v mnoha situacich je treba zjistit "na miste" horni ci dolni hranici
typu
> a v tom mi tech malo konstant nepomuze
----------------
> "na miste" pouzi MAXSHORT, MAXINT, MAXDOUBLE, MAXFLOAT, analogicky MIN.
---------------
ted momentalne sem potreboval jenom dynamicky zjistit horni hr. typu INT64
... je mi proti mysli pouzivat zbytecnou konstantu ktera stejne jaxem se
predtim dival ve values.h neni a zbytecne ji deklarovat ..... tady by to
jeste v pohode slo ale kdyz treba budu mit vyjmenovany typ tak budu chcit
docela casto ty hranice zjistit ... nebo treba hranice dynamickeho pole coz
v Delphi taky obstarava fce HIGH ... proste velice casto je to potreba a ja
porad nemuzu prijit na to jak to zjistit ... zadnou adekvatni fci v helpech
nemuzu najit ...


Odpovedá: Karel Kral

13. 10. 2004 12:32

Neni to dobre pouzit napriklad proto, ze

if MyVar < MaxInt

je zavisle na konkretnim typu a kdyz typ zmenis, musis rucne zmenit i
meze. Kdezto kdyz udelas promennou MyVar: SmallInt a pouzijes

if MyVar < High(MyVar)

funguje to, i kdyz zmenis MyVar na integer nebo cokoliv jineho.

> "na miste" pouzi MAXSHORT, MAXINT, MAXDOUBLE, MAXFLOAT, analogicky MIN.
> Nechapem, preco sa to neda pouzit?
> Existuje este jedna pomocka: \stl\_limits.h,
> vyzaduje vsak aspon zakladne vedomosti o sablonach.
> P.


--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral@purus.cz, WWW: http://www.purus.cz
______________________________________________________


Odpovedá: p.sestak@corag.sk

13. 10. 2004 13:15

> ---------------
> ted momentalne sem potreboval jenom dynamicky zjistit horni hr. typu
INT64
> ... je mi proti mysli pouzivat zbytecnou konstantu ktera stejne jaxem se
> predtim dival ve values.h neni a zbytecne ji deklarovat ..... tady by to
> jeste v pohode slo ale kdyz treba budu mit vyjmenovany typ tak budu
chcit
> docela casto ty hranice zjistit ... nebo treba hranice dynamickeho pole
coz
> v Delphi taky obstarava fce HIGH ... proste velice casto je to potreba a
ja
> porad nemuzu prijit na to jak to zjistit ... zadnou adekvatni fci v
helpech
> nemuzu najit ...

zazracny operator sizeof().
toto som nasiel v helpe pre C++ od borlandu:

#include <stdio.h>
struct st {
   char *name;
   int age;
   double height;
};

struct st St_Array[]= { /* AN ARRAY OF structs */
   { "Jr.", 4, 34.20 }, /* St_Array[0] */
   { "Suzie", 23, 69.75 }, /* St_Array[1] */
};

int main()
{
   long double LD_Array[] = { 1.3, 501.09, 0.0007, 90.1, 17.08 };

        //pocet prvkov enumu
   printf("\nNumber of elements in LD_Array = %d",
           sizeof(LD_Array) / sizeof(LD_Array[0]));

   /**** THE NUMBER OF ELEMENTS IN THE St_Array. ****/
   printf("\nSt_Array has %d elements",
           sizeof(St_Array)/sizeof(St_Array[0]));

   /**** THE NUMBER OF BYTES IN EACH St_Array ELEMENT. ****/
   printf("\nSt_Array[0] = %d", sizeof(St_Array[0]));

   /**** THE TOTAL NUMBER OF BYTES IN St_Array. ****/
      printf("\nSt_Array=%d", sizeof(St_Array));
   return 0;
}

na rozsah typov som nic ine okrem _limits.h nenasiel.
p.